package Servlets;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
/**
 *
 * @author Leinad
 */
import BaseDados.AcessoBD;
import Classes.Aluno;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet(name = "Servlet", urlPatterns = {"/Servlet"})
public class Servlet extends HttpServlet {

    AcessoBD acesso = new AcessoBD();
    HttpSession session = null;

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("Entrei no Servlet");
        session = request.getSession();
        if (request.getParameter("opcode").equals("pesquisaCacifo")) {
        } else if (request.getParameter("opcode").equals("pesquisaDesportista")) {
        } else if (request.getParameter("opcode").equals("socio")) {
            System.out.println("Entrei no Socio...");
            int nAluno = 0;
            try {
                nAluno = Integer.parseInt(request.getParameter("nAluno"));
            } catch (NumberFormatException e) {
                System.out.println("Formato Errado!! Servlet - opcode=socio");
            }
            Aluno socio = acesso.getAluno(nAluno);
            session = request.getSession();
            // SÓCIO

            session.setAttribute("nome", socio.getNome());
            session.setAttribute("nAluno", socio.getnAluno());
            session.setAttribute("curso", socio.getCurso());
            session.setAttribute("turma", socio.getTurma());
            session.setAttribute("morada", socio.getMorada());
            session.setAttribute("codigoPostal1", socio.getCodigoPostal1());
            session.setAttribute("codigoPostal2", socio.getCodigoPostal2());
            session.setAttribute("dataNasc", socio.getNascimento());
            // CACIFO
            if (socio.getCacifo() != null) {
                session.setAttribute("nCacifo", socio.getCacifo().getnCacifo());
                session.setAttribute("dataEntrega", socio.getCacifo().getDataEntrega());
                session.setAttribute("dataDevolucao", socio.getCacifo().getDataDevolucao());
                session.setAttribute("caucao", socio.getCacifo().getCaucao());
                session.setAttribute("observacoes", socio.getCacifo().getObservacoes());
                if (socio.getCacifo().getModalidade().equals("Anual")) {
                    session.setAttribute("anual", "checked=\"true\"");
                } else if (socio.getCacifo().getModalidade().equals("1º Semestre")) {
                    session.setAttribute("1semestre", "checked=\"true\"");
                } else if (socio.getCacifo().getModalidade().equals("2º Semestre")) {
                    session.setAttribute("2semestre", "checked=\"true\"");
                }
            }

            response.sendRedirect("./aluno.jsp");

        } else if (request.getParameter("opcode").equals("inserirSocio")) {
            System.out.println("Entrei no Inserir Socio...");
            String nome = request.getParameter("nomeSocio");
            String morada = request.getParameter("morada");
            int codigoPostal1 = Integer.parseInt(request.getParameter("codigoPostal1"));
            int codigoPostal2 = Integer.parseInt(request.getParameter("codigoPostal2"));
            String localidade = request.getParameter("localidade");
            int contacto = Integer.parseInt(request.getParameter("contacto"));
            String dataNasc = request.getParameter("nascimento");
            int bi = Integer.parseInt(request.getParameter("bi"));
            int contribuinte = Integer.parseInt(request.getParameter("contribuinte"));
            String mail = request.getParameter("mail");
            int nAluno = Integer.parseInt(request.getParameter("nAluno"));
            String curso = request.getParameter("curso");
            String turma = request.getParameter("turma");
            int ultimoAnoPago = Integer.parseInt(request.getParameter("ultimoAnoPago"));
            String newsletter = request.getParameter("newsletter");
            String entidades = request.getParameter("entidades");

            boolean news;
            if (newsletter != null) {
                news = true;
            } else {
                news = false;
            }
            boolean ent = true;
            if (entidades != null) {
                ent = true;
            } else {
                ent = false;
            }

            System.out.println("Entidades: " + entidades + " Contribuinte: " + contribuinte);

            Aluno socio = new Aluno(nAluno, curso, turma, nome, morada, codigoPostal1, codigoPostal2, contacto, dataNasc, localidade, bi, contribuinte, mail, ultimoAnoPago, news, ent);
            acesso.insertSocio(socio);
            //String tabela = acesso.getAllAlunos();
            //session.setAttribute("tabelaSocios", tabela);
            response.sendRedirect("./socio.jsp");
        } else if (request.getParameter("opcode").equals("edicaoSocio")) {
            response.sendRedirect("./SocioEditar.jsp");
        } else if (request.getParameter("opcode").equals("editarSocio")) {
            /*
             * COMPLETAR
             *
             */
            System.out.println(session.getAttribute("nAluno"));
            try {
                int nAlunoInicial = (Integer) session.getAttribute("nAluno");

                String nome = request.getParameter("nomeSocio");
                String morada = request.getParameter("morada");
                int nAluno = Integer.parseInt(request.getParameter("nAlunoNovo"));
                int codigoPostal1 = Integer.parseInt(request.getParameter("codigoPostal1"));
                int codigoPostal2 = Integer.parseInt(request.getParameter("codigoPostal2"));
                String curso = request.getParameter("curso");
                String turma = request.getParameter("turma");
                String dataNasc = request.getParameter("dataNasc");

                acesso.updateSocio(nAlunoInicial, nAluno, nome, morada, curso, turma, codigoPostal1, codigoPostal2, dataNasc);
                session.setAttribute("nome", nome);
                session.setAttribute("nAluno", nAluno);
                session.setAttribute("curso", curso);
                session.setAttribute("turma", turma);
                session.setAttribute("morada", morada);
                session.setAttribute("codigoPostal1", codigoPostal1);
                session.setAttribute("codigoPostal2", codigoPostal2);
                session.setAttribute("dataNasc", dataNasc);

            } catch (NumberFormatException e) {
                System.out.println("FORMATO ERRADO - editarSocio");
            }
            response.sendRedirect("./aluno.jsp");
        } else if (request.getParameter("opcode").equals("inserirNovoCurso")) {
            String curso = request.getParameter("novoCurso");
            acesso.insertNovoCurso(curso);
            response.sendRedirect("./home.jsp");
        } else if (request.getParameter("opcode").equals("procuraSocio")) {
            int nAluno = Integer.parseInt(request.getParameter("nAluno"));
            Aluno socio = acesso.getAluno(nAluno);

            if (socio != null) {
                session.setAttribute("nome", socio.getNome());
            }
            response.sendRedirect("./cacifos.jsp");
        } else if (request.getParameter("opcode").equals("adicionaCacifo")) {
            int nCacifo = Integer.parseInt(request.getParameter("nCacifo"));
            int caucao = Integer.parseInt(request.getParameter("caucao"));

            String entrega = request.getParameter("dataEntrega");
            System.out.println(entrega);

            acesso.adicionarCacifo(30551, nCacifo, request.getParameter("modalidade"), caucao, entrega, request.getParameter("dataDevolucao"), request.getParameter("obs"));
            response.sendRedirect("./cacifos.jsp");
        }

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        processRequest(request, response);

    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        processRequest(request, response);


    }
}
